// app.js
const express = require('express');
const cors = require('cors');
const session = require('express-session');
const bodyParser = require('body-parser');
require('./wwwroot/db'); // 引入 db.js 以初始化数据库连接
const authRoutes = require('./wwwroot/routes/vue-app/auth');
const adminRoutes = require('./wwwroot/routes/vue-admin/admin');
const bannerRoutes = require('./wwwroot/routes/vue-app/banner');

// 创建一个服务器对象
const app = express();

// 配置session中间件
app.use(session({
  secret: 'your-secret-key',  // 用于签名会话ID cookie的密钥
  resave: false,              // 强制保存会话即使是未修改的
  saveUninitialized: true,    // 强制将未初始化的会话保存到存储中
  cookie: {
    secure: false,            // 如果是http则设置为false
    maxAge: 1000 * 60 * 60 * 24 // 24小时过期
  }
}));

// 配置其他中间件
app.use(express.static('wwwroot'));
app.use(express.json());  // 添加这行来解析JSON请求体
app.use(express.urlencoded({ extended: true }));
app.use(cors({
  origin: 'http://localhost:5173', // 允许前端域名
  credentials: true               // 允许携带凭证
}));

// 使用管理员路由
app.use('/admin', adminRoutes);

app.use(bodyParser.json());
//验证码
app.use('/api/auth', authRoutes);

// 使用轮播图路由
app.use('/api', bannerRoutes);

// 监听服务器端口号
app.listen(3000, () => {
    console.log('http://localhost:3000/ 服务器开启成功...');
}).on('error', (err) => {
    console.error('端口被占用或启动失败:', err.message);
});